﻿namespace SS.WPF.Framework.Selection
{
    /// <summary>
    /// The interface is used to provide the means to display selected View
    /// </summary>
    public interface ISelectionService : ISelectionChangedProvider
    {
        #region Public Methods

        /// <summary>
        /// Register a handler (ViewModel) to handle selection changed
        /// <para>
        /// When selection has been changed, registered handlers will be invoke to handle
        /// </para>
        /// </summary>
        /// <param name="handler">
        /// The handler.
        /// </param>
        void Register(ISelectionChangedHandler handler);

        /// <summary>
        /// Unregister a handler (ViewModel) to handle selection changed
        /// </summary>
        /// <param name="handler">
        /// The handler.
        /// </param>
        void Unregister(ISelectionChangedHandler handler);

        #endregion
    }
}